package com.zf.bm.common.core.shiro.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.LinkedList;
import java.util.List;

/**
 * shiro 配置参数
 * @author shengkai
 * @since 2025/06/21 17:00:00
 */
@Data
@Component
@ConfigurationProperties(prefix = "shiro")
public class ShiroConfig {
    /**
     * 是否开启验证码
     */
    private boolean validateCodeEnable = Boolean.FALSE;
    /**
     * 无权访问的权限地址
     */
    private String unauthorizsedUrl;
    /**
     * 过滤的规则
     */
    private List<String> filteRules = new LinkedList<>();
    /**
     * 活跃seesion缓存名称
     */
    private String activeSessionCacheName = "zf:user:session:activeSessionCache";
    /**
     * 登录最大重试次数
     */
    private Integer pwdMaxRetires = 3;
    /**
     * session超时时间，1小时=3600000毫秒(ms)，90000=15min
     */
    private Long sessionTimeout = 900000L;
    /**
     * 密码算法
     */
    private String pwdHashName = "MD5";
    /**
     * 默认HASH加密迭代次数
     */
    private Integer pwdIterations = 1024;
    /**
     * JWT密钥
     */
    private String jwtKey;
    private Integer forzenDate;

}
